属性 | 描述 |
---|---|
abort | 当元素内容被取消加载时触发 |
blur | 元素失去焦点时触发 |
canplay | 当元素进行回放时触发,但还是会要求缓冲 |
canplaythrough | 当能够进行不间断回放时触发,即不要求缓冲就可以播放完 |
change | 当元素的值发生变化时触发 |
click | 当定位设备( 如鼠标指针) 在一个元素上单击时触发 |
contextmenu | 当鼠标右键单击该元素打开右键菜单时触发 |
dblclick | 当定位设备(如鼠标指针)在一个元素上双击时触发 |
drag | 当元素被拖曳时触发 |
dragend | 当元素从拖曳状态结束时,即释放时被触发 |
dragenter | 当另一个被拖曳的元素进入当前元素时被触发 |
dragleave | 当另一个被拖曳的元素离开当前元素时被触发 |
dragover | 当另一个被拖曳的元素经过当前元素时(位于元素上)被触发 |
dragstart | 当一个对象被放置到当前元素时触发 |
drop | 当元素从拖曳状态结束时,即释放时被触发 |
durationchange | 当 duration 属性发生改变时触发 |
emptied | 当 media 元素恢复到初始状态时触发 |
ended | 当播放到结尾时触发 |
error | 当与此元素相关联的对象有错误发生时触发 |
focus | 当元素获取焦点时触发 |
formChange | 当表单改变时触发 |
formInput | 当表单获得用户输入时触发 |
input | 当元素获得用户输入时触发 |
invalid | 当元素无效时触发 |
keydown | 当元素处于焦点状态下按某个键盘键时触发 |
keypress | 当元素处于焦点状态下按某个键盘键并释放时触发 |
keyup | 当元素处于焦点状态下释放某个按着的键盘键时触发 |
load | 在元素的内容完成加载后触发 |
loadeddata | 当元素失去鼠标指针捕捉时触发 |
loadedmetadata | 当 media 元素的 duration 属性和元素加载完成时触发,此时可以读取这些数据 |
loadstart | 当开始查找要加载的 media 数据时触发 |
mousedown | 当元素处于焦点状态下在其上单击鼠标时触发 |
mousemove | 当鼠标指针在该元素上移动时触发 |
mouseout | 当鼠标指针离开该元素时触发 |
mouseover | 当鼠标指针进入该元素时触发 |
mouseup | 当元素处于焦点状态下在其上释放鼠标按键时触发 |
mousewheel | 当元素处于焦点状态下在其上滚动鼠标滚轮时触发 |
pause | 当视频或音频中止播放时触发 |
play | 当调用 play ()方法开始播放时触发 |
playing | 当视频或音频正在播放时触发 |
progress | 当 media 数据的播放速率改变时触发 |
ratechange | 当浏览器正在从服务器接收数据时触发 |
readystatechange | 当元素的准备状态发生变化时触发 |
reset | 当表单被重置时触发 |
scroll | 当用户滚动该元素内容时触发 |
seeked | 当 media 元素的 seeking 属性不再为真且定位已结束时触发 |
seeking | 当 media 元素的 seeking 属性为真且定位已开始时触发 |
select | 当元素被选定时触发 |
show | 当 menu 元素被显示为上下文菜单时触发 |
stalled | 当取回 media 数据过程中(延迟)存在错误时触发 |
submit | 当数据被提交时触发 |
suspend | 当已经在获取 media 数据,但在取回整个 media 数据之前中止时触发 |
timeupdate | 当 media 改变音量或当音量被设置为静音时触发 |
volumechange | 当 media 改变其播放位置时触发 |
waiting | 当 media 已停止播放但打算继续播放时触发 |
JavaScript 是基于对象( object-based )的语言。它的一个最基本的特征就是采用事件驱动。它可以使在图形界面环境下的一切操作变得简单化。通常,鼠标或热键的动作称为事件( event )。由鼠标或热键引发的一连串程序动作,称为事件驱动( event driver )。而对事件进行处理的程序或函数,称为事件处理程序( event handler )。
事件处理是对象化编程的一个很重要的环节。它可以使程序的逻辑结构更加清晰,使程序更具有灵活性,提高程序的开发效率。事件处理的过程分为三步:①发生事件;②启动事件处理程序;③事件处理程序做出反应。其中,要使事件处理程序能够启动,必须通过指定的对象来调用相应的事件,然后通过该事件调用事件处理程序。事件处理程序可以是任意 JavaScript 语句,但是我们一般用特定的自定义函数来对事件进行处理。
绝大多数事件的命名都是描述性的,很容易理解。如 click 、 submit 、 mouseover 等,通过名称就可以猜测其含义。但也有少数事件的名称不易理解,如 blur (英文的字面意思为 "模糊 "),表示一个域或者一个表单失去焦点。通常,事件处理器的命名原则是,在事件名称前加上前缀 on 。例如,对于 click 事件,其处理器名为 onClick 。
DOM 0 级定义了以下的事件类型:
再零级事件模型中, javascript 支持两种绑定事件的方式。
<form>
id="form" name="form" action="https://lmssee.cn/" method="post"
onsubmit="if(this.elements[0].value.length==0) return false;"> name:
<input type="text" name="user" id="user" />
<input type="submit" value="submit" id="btn" name="btn" />
</form>
在处理 event 事件时,应该先判断 event 在当前解析环境中的状态,如果当前浏览器支持,则使用 event ( DOM 事件模型);如果不支持,则使用 window.event 获取 event 对象。 event.srcElement 表示当前事件的源,即响应事件的当前事件,这是 IE 模型用法,但是 DOM 事件模型不支持该属性,需要使用 event 对象的 target 属性,它符合一个标准的源属性。